/**
 * @INotifys.as
 *
 * @author sodaChen mail:sujun10@qq.com
 * @version 1.0
 * <br>Program Name:ASFrame
 * <br>Date:2016-9-19
 */
package com.asframe.pattern.observers
{
	/**
	 * 发起通知器，可以代替AS3自带的事件派发器
	 * @author sodaChen
	 * #Date:2016-9-19
	 */
	public interface INotifys
	{
		function sendNotice(notcie:*,params:Array):void;
		/**
		 * 发起一个通知
		 * @param notcie 通知
		 * @param args 观察者接受的参数
		 *
		 */
		function send(notcie:*,...args):void;
		/**
		 * 删除一个通知和他对应的观察者
		 * @param notice
		 * @param observer
		 *
		 */
		function removeObserver(notice: *,observer: INoticeObserver):void;
		/**
		 * 添加一个监听的主题和观察者
		 * @param notice
		 * @param observer
		 *
		 */
		function addObserver(notice: *,observer:INoticeObserver):void;
		/**
		 * 添加一个观察者通知
		 * @param notice 通知名称
		 * @param linsten 通知监听函数
		 *
		 */
		function addNotice(notice:*,linsten:Function):void;
		/**
		 * 删除一个观察者通知
		 * @param notice 通知名称
		 * @param linsten 删除指定监听函数
		 *
		 */
		function removeNotice(notice:*,linsten:Function):void;
	}
}